﻿##Gestion de la bibliothèque
import sqlite3

class gest_bib():
    """objet qui gère les fonctions d'écriture/lecture de la base de donnée"""
    def __init__(self,base_bibliotheque="base_bibliothèque"):

        self.baseDonn = sqlite3.connect("base_bibliothèque")
        self.cur = self.baseDonn.cursor()

################################################################################

    def afficher_livre(self):
        self.cur.execute("SELECT * FROM bib")
        for l in self.cur:
            print(l)

################################################################################

    def liste_livre(self):
        #retourne la liste des livres
        l=[]
        self.cur.execute("SELECT * FROM bib")
        for k in self.cur:
            l.append(k)
        return l

################################################################################

    def fermer_base(self):
        self.cur.close()
        self.baseDonn.close()

################################################################################

    def ajout_base(self,requete):
        try:

            self.cur.execute("INSERT INTO bib(ref,nom_livre, nom_auteur, \
nom_empr, nom_resa) VALUES("+requete[0]+",'"+requete[1]+"','"+requete[2]+"','\
"+requete[3]+"','"+requete[4]+"')")

        except:
            return 0

        else:
            self.baseDonn.commit()
            return 1

################################################################################

    def emprunter_livre(self,ref_modifier, nom_empr):
        try:
            print(ref_modifier)
            self.cur.execute("UPDATE bib SET nom_empr='"+nom_empr+"' \
WHERE ref="+ref_modifier+"")
        except:
            print("la référence de votre livre n'existe pas!")
        else:
            self.baseDonn.commit()

################################################################################

    def rendre_livre(self,ref):
        try:
            self.cur.execute("UPDATE bib SET nom_empr='' \
WHERE ref="+ref+"")
        except:
            return 0
        else:
            self.baseDonn.commit()
            return 1

################################################################################

    def supprimer_livre(self, ref):
        try:
            self.cur.execute("DELETE FROM bib WHERE ref="+ref+"")
        except:
            return 0

        else:
            self.baseDonn.commit()
            return 1

################################################################################

    def rechercher(self,recherche): #recherche : si la recherche est un titre,
                                    #            il doit être entre ' !

        resultat=[]

        c=0
        self.cur.execute("SELECT * from bib where ref = "+recherche+" OR nom_li\
        vre = "+recherche+" OR nom_auteur = "+recherche+"")
        for o in self.cur:
            resultat.append(o)
            c=c+1

        if c==0:
            return 0,recherche              # 0 : pas de resultat 
        if c==1:
            return 1,recherche,resultat,c
        
        # Rappel : c = nombre de resultat




